Information is typically stored on external storage devices, such as direct access storage devices (DASD) or optical disks, for retrieval at a later time. Previously, in order to store the information on the storage device, a processor would issue an input/output (I/O) command which was passed to a storage controller specifying at what location on the storage device the information was to be stored. Similarly, if the information was to be read from the storage device, the processor would pass a read command to the storage controller specifying the address of the position to be read. Thus, it was the processor that kept track of the addresses and the particular positions to be written to or read from.
Processor control of the particular positions to be written to or read from offers certain disadvantages particularly in a multisystem environment. For instance, difficulties arise in a multisystem environment in which the multiple hosts wish to write log data to a single log data set. If the data set resides on DASD, it can be shared by the multiple host systems. But, because each host is separately responsible for determining the location of the next record to write on disk, there is no simple way for multiple hosts to coordinate their log writes to create a single, sequential stream of log data.
Further, if one host system is writing to a log data set and another host is concurrently reading it, the reading system can often read past the last record written. This condition must be repeatedly detected and recovered from by the reading host. Additionally, the read and write activity is unsynchronized, which can cause degraded performance. Yet further, there is currently no simple way of allowing multiple hosts to coordinate sequential reading or writing of data set records so that the data set can be processed in parallel.
In addition to the above, other problems arise when the host systems are responsible for controlling the logical positioning on a storage device. For example, database recovery performance is degraded when a linear search of the log data set is required to locate the point from which to start the recovery processing. Further, there is no inexpensive, but large capacity mechanism for supporting shared work queues.
Based on the foregoing, a need exists for a logical positioning mechanism which is not controlled by the host processors. A further need exists for a mechanism which enables the storage device to be viewed by host programs as a complex data structure. A yet further need exists for a logging mechanism which allows multiple hosts to write to a single log data set. A further need exists for the logical positioning mechanism to be usable by multiple host processors in an environment where the multiple host processors have shared access to the same storage device. A further need also exists to allow the data on the storage device to be accessed compatibly by existing host processors without using the mechanisms of the present invention. When the storage device is shared by multiple host processors, a requirement exists for allowing some of the host processors to access the storage device using the mechanisms of the present invention and others to access the storage device using existing mechanisms.